'''闭包_装饰器
装饰器： 可以达到不改动目标函数的基础上，增加额外的功能；

'''

def sleep():
    import random
    import time
    print('睡眠中...')
    time.sleep(random.randint(1, 5))

# 需求，在sleep() 函数前后增加额外代码；或增强sleep()函数；

# # 比较low 的编写方式
# print('我睡觉了')
# sleep()
# print('我起床了')

# 闭包_装饰器 的编写方式 推荐使用；
def outer(func):
    def inner():
        print('我睡觉了')
        func()
        print('我起床了')
    return inner

fun1 = outer(sleep)
fun1()